LINUX_ROOT := $(wildcard $(XEN_ROOT)/linux-2.6.*-xen-sparse)
-blktapctrl:
+blktapctrl: blktapctrl.c
$(CC) $(CFLAGS) -o blktapctrl $(LIBS) blktapctrl.c
-tapdisk: $(BLK-OBJS)
+tapdisk: $(BLK-OBJS) tapdisk.c
$(CC) $(CFLAGS) -o tapdisk $(BLK-OBJS) tapdisk.c \
$(AIOLIBS) $(LIBS)
+.PHONY: qcow-util
+qcow-util: img2qcow qcow2raw qcow-create
-qcow-util: $(BLK-OBJS)
- $(CC) $(CFLAGS) -o img2qcow $(BLK-OBJS) img2qcow.c \
- $(AIOLIBS) $(LIBS)
- $(CC) $(CFLAGS) -o qcow2raw $(BLK-OBJS) qcow2raw.c \
- $(AIOLIBS) $(LIBS)
- $(CC) $(CFLAGS) -o qcow-create $(BLK-OBJS) qcow-create.c \
- $(AIOLIBS) $(LIBS)
+img2qcow qcow2raw qcow-create: %: $(BLK-OBJS)
+ $(CC) $(CFLAGS) -o $* $(BLK-OBJS) $*.c $(AIOLIBS) $(LIBS)
install: all
$(INSTALL_PROG) $(IBIN) $(QCOW_UTIL) $(DESTDIR)$(INSTALL_DIR)
LIB = libblktap.a libblktap.so.$(MAJOR).$(MINOR)
+.PHONY: all
all: build
-build:
- $(MAKE) libblktap
+.PHONY: build
+build: libblktap.a
+
+.PHONY: libblktap
+libblktap: libblktap.a
install: all
$(INSTALL_DIR) -p $(DESTDIR)/usr/$(LIBDIR)
clean:
rm -rf *.a *.so* *.o *.rpm $(LIB) *~ $(DEPS) xen TAGS
-libblktap: $(OBJS)
+libblktap.a: $(OBJS)
$(CC) $(CFLAGS) -Wl,-soname -Wl,$(SONAME) -shared \
-L$(XEN_XENSTORE) -l xenstore \
-o libblktap.so.$(MAJOR).$(MINOR) $^ $(LIBS)
ln -sf libblktap.so.$(MAJOR).$(MINOR) libblktap.so.$(MAJOR)
- ln -sf libblktap.so.$(MAJOR) $@.so
- ar rc libblktap.a $@.so
+ ln -sf libblktap.so.$(MAJOR) libblktap.so
+ ar rc $@ libblktap.so
.PHONY: TAGS all build clean install libblktap